#pragma once

#include <iostream>
#include <string>
#include <vector>
#include <opencv2/opencv.hpp>
#include <opencv2/dnn.hpp>
#include <onnxruntime_cxx_api.h>

class OnnxCaller
{
private:
    OnnxCaller();
    int __load_Onnx();

public:
    std::vector<double> ProcessImage(cv::Mat &image);
    static OnnxCaller* getInstance();

private:
    static OnnxCaller* m_instance;
    std::unique_ptr<Ort::Env> m_pOrtEnv;
    std::unique_ptr<Ort::Session> m_pOrtSession;
};